import Http from '../request'

export default class Dict {
  /**
   * 获取所有字典
   */
  static getAllDict() {
    return Http.get('/dict', null)
  }
  /**
   * 获取所有字典
   */
  static page(query) {
    return Http.post('/page/dict', query, null)
  }
  /**
   * 创建 (新增)
   *
   * @param dictDTO  dict 信息
   */
  static create(dictDTO) {
    return Http.postData('/dict', dictDTO)
  }

  /**
   * 更新
   * 根据传递的参数更新，字段为空则不更新
   *
   * @param dictDTO  dict 信息
   */
  static update(dictDTO) {
    return Http.putData(`/dict/${dictDTO.id}`, dictDTO)
  }

  /**
   * 通过 ID 删除
   *
   * @param id ID
   */
  static delete(id) {
    return Http.deleteData(`/dict/${id}`, null)
  }

  /**
   * 获取所有字典项目
   */
  static getAllDictItem(id) {
    return Http.get('/dict/item', { id })
  }

  /**
   * 创建 (新增) 字典项
   *
   * @param id 字典ID
   * @param dictItemDTO  dict 信息
   */
  static createItem(id, dictItemDTO) {
    return Http.postData(`/dict/${id}/item`, dictItemDTO)
  }

  /**
   * 更新字典项
   *
   * @param dictItemDTO  字典项信息
   */
  static updateItem(dictItemDTO) {
    return Http.putData(`/dict/item/${dictItemDTO.id}`, dictItemDTO)
  }

  /**
   * 通过 ID 删除
   *
   * @param id ID
   */
  static deleteItem(id) {
    return Http.deleteData(`/dict/item/${id}`, null)
  }
}
